Conventional volume-management technologies may be used to create and manage multiple virtual or physical machines from a source machine (which may, in some cases, also be a virtual machine). Some technologies may create these multiple machines from the source machine by taking snapshots (such as copy-on-write or space-optimized snapshots) of boot and data disks in the source machine and then using these snapshots to form the virtual or physical machines.
Over time, various patches, installations, and upgrades may modify regions of memory in the machines. Often, the same modifications may be made to multiple machines. For example, a network administrator may apply identical patches to multiple machines located on a network managed by the administrator. In an example where the multiple machines are initially cloned from the same source machine, the multiple machines may share a number of identical regions of data, even after these modifications. As changes are made to the various regions of memory, snapshot volumes corresponding to each of the machines may be individually created and stored. Additionally, individual backup copies of the machines may be periodically saved to a backup database.
Because, in this example, individual snapshot volumes and backup copies are made for each of the multiple machines, significant storage space must often be provided to accommodate the corresponding snapshot volumes and backup copies of the volumes. Additionally, backup servers must often have significant processing bandwidth, input/output bandwidth, and memory bandwidth to accommodate the transfer and processing of data related to snapshot volumes and backup copies of the multiple machines. Further, because identical modifications are often made to multiple machines in a network, the databases storing the snapshot volumes and backup copies may contain a significant amount of redundant data.